在一般我們常看到的登入畫面都會有些基本流程,當我們在輸入帳號密碼後按下登入鍵之後都會發生什麼事呢?
如果登入成功就會跳轉到相應的頁面,否則會跳出警示訊息,我們通常會用if條件式來做這樣的判斷,那我們在做判斷時會需要兩種資訊
1.使用者輸入的帳號密碼
2.資料庫是否有這組帳號密碼
因此我們可以列出詳細流程:
連接資料庫->下SQL語法撈資料->將使用者輸入的帳號密碼帶入查看資料庫中是否有這筆資料->如果有則代表登入成功,否則失敗
實作
我們打開Controller然後加入以下程式碼
public ActionResult DoLogin(loginfo info)
{
//與資料庫連接
string connstr = "Data Source=CSIE-TEST2;Initial Catalog=Student_data;UserID=TEST03;Password=1qaz@WSX;Encrypt=False";
SqlConnection conn = new SqlConnection(connstr);
conn.Open();
//下SQL語法
SqlCommand cmd = new SqlCommand("select * from student_login where account=@Account and Password=@Password");
cmd.Connection = conn;
//填入參數(使用者輸入的帳號密碼)
cmd.Parameters.AddWithValue("@account", info.Account);
cmd.Parameters.AddWithValue("@Password", info.Password);
//執行SQL語法來查詢是否有這組帳密
SqlDataAdapter adpt = new SqlDataAdapter();
DataSet ds = new DataSet();
adpt.SelectCommand = cmd;
adpt.Fill(ds);
//如果有就跳轉到首頁
if (ds.Tables[0].Rows.Count > 0)
{
return RedirectToAction("Index");
}
解釋:
在上一篇中我們有創建一個class 名稱叫做loginfo,所以我們這次會需要一個參數就是loginfo的物件(loginfo info),本結演示如何將邏輯轉換為程式碼,然而詳細的程式邏輯會留到下個篇章講解,在這篇當中可以簡述一下,我們會先與資料庫取得連接之後下語法,語法當中其實不知道參數是甚麼,所以要填入參數,之後執行語法後判斷是否有找到這筆資料來決定是否有登入成功。
總結:
必須要先有概念才會比較熟悉如何建構,因此事前的建構是非常重要的!